package com.hanrui.android.di.component;

import android.app.Activity;
import android.content.Context;

import com.hanrui.android.di.module.FragmentModule;
import com.hanrui.android.di.scope.ContextLife;
import com.hanrui.android.di.scope.PerFragment;
import com.hanrui.android.fragment.message.LcFragemnt;
import com.hanrui.android.fragment.MessageFragment;
import com.hanrui.android.fragment.MobileFragment;
import com.hanrui.android.fragment.PersonalFragment;
import com.hanrui.android.fragment.WorkFragment;
import com.hanrui.android.fragment.message.audit.ApproveFragment;
import com.hanrui.android.fragment.message.audit.ChargeFragment;
import com.hanrui.android.fragment.message.audit.NoticeFragment;
import com.hanrui.android.fragment.message.audit.askforleave.AskForLeaveBizFragment;
import com.hanrui.android.fragment.message.audit.askforleave.AskForLeaveDetailFragment;
import com.hanrui.android.fragment.message.audit.businesstravel.BusinessTravelBizFragment;
import com.hanrui.android.fragment.message.audit.businesstravel.BusinessTravelDetailFragment;
import com.hanrui.android.fragment.message.audit.car.CarBizFragment;
import com.hanrui.android.fragment.message.audit.car.CarDetailFragment;
import com.hanrui.android.fragment.message.audit.chapter.ChapterBizFragment;
import com.hanrui.android.fragment.message.audit.chapter.ChapterDetailFragment;
import com.hanrui.android.fragment.message.audit.contract.ContractBizFragment;
import com.hanrui.android.fragment.message.audit.contract.ContractDetailFragment;
import com.hanrui.android.fragment.message.audit.contract.GuaranteeContractBizFragment;
import com.hanrui.android.fragment.message.audit.contract.GuaranteeContractDetailFragment;
import com.hanrui.android.fragment.message.audit.dispatch.DispatchDocBizFragment;
import com.hanrui.android.fragment.message.audit.dispatch.DispatchDocDetailFragment;
import com.hanrui.android.fragment.message.audit.emp.EmpQuitBizFragment;
import com.hanrui.android.fragment.message.audit.emp.EmpQuitDetailFragment;
import com.hanrui.android.fragment.message.audit.issue.IssueBizFragment;
import com.hanrui.android.fragment.message.audit.issue.IssueDetailFragment;
import com.hanrui.android.fragment.message.audit.meeting.MeetingIssueBizFragment;
import com.hanrui.android.fragment.message.audit.meeting.MeetingIssueDetailFragment;
import com.hanrui.android.fragment.message.audit.month.OverSeeMonthBizFragment;
import com.hanrui.android.fragment.message.audit.month.OverSeeMonthDetailFragment;
import com.hanrui.android.fragment.message.audit.officegood.OfficeGoodBizFragment;
import com.hanrui.android.fragment.message.audit.officegood.OfficeGoodDetailFragment;
import com.hanrui.android.fragment.message.audit.oversee.OverSeeThreeBizFragment;
import com.hanrui.android.fragment.message.audit.oversee.OverSeeThreeDetailFragment;
import com.hanrui.android.fragment.message.audit.performance.PerformanceBizDetailFragment;
import com.hanrui.android.fragment.message.audit.performance.PerformanceBizFragment;
import com.hanrui.android.fragment.message.audit.probusinfo.ProBusInfoBizFragment;
import com.hanrui.android.fragment.message.audit.probusinfo.ProBusInfoDetailFragment;
import com.hanrui.android.fragment.message.audit.proele.ProEleBidInfoBizFragment;
import com.hanrui.android.fragment.message.audit.proele.ProEleBidInfoDetailFragment;
import com.hanrui.android.fragment.message.audit.proposal.ProposalBizFragment;
import com.hanrui.android.fragment.message.audit.proposal.ProposalDetailFragment;
import com.hanrui.android.fragment.message.audit.proposal.ProposalVoteBizFragment;
import com.hanrui.android.fragment.message.audit.proposal.ProposalVoteDetailFragment;
import com.hanrui.android.fragment.message.audit.receipt.ReceiptDocBizFragment;
import com.hanrui.android.fragment.message.audit.receipt.ReceiptDocDetailFragment;
import com.hanrui.android.fragment.message.audit.seal.SealBorrowBizFragment;
import com.hanrui.android.fragment.message.audit.seal.SealBorrowDetailFragment;
import com.hanrui.android.fragment.message.audit.week.ProEleWeeklyMainBizFragment;
import com.hanrui.android.fragment.message.audit.week.ProEleWeeklyMainDetailFragment;
import com.hanrui.android.fragment.message.audit.workovertime.WorkOverTimeBizFragment;
import com.hanrui.android.fragment.message.audit.workovertime.WorkOverTimeDetailFragment;
import com.hanrui.android.fragment.message.audit.yearplan.YearPlanBizFragment;
import com.hanrui.android.fragment.message.audit.yearplan.YearPlanDetailFragment;
import com.hanrui.android.fragment.message.meet.AlreadyMeetingListFragment;
import com.hanrui.android.fragment.message.meet.WaitMeetingListFragment;
import com.hanrui.android.fragment.message.myvote.AlreadyVoteListFragment;
import com.hanrui.android.fragment.message.myvote.MyVoteDetailFragment;
import com.hanrui.android.fragment.message.myvote.MyVoteHandlelFragment;
import com.hanrui.android.fragment.message.myvote.MyVoteRecordFragment;
import com.hanrui.android.fragment.message.myvote.NotYetVoteListFragment;
import com.hanrui.android.fragment.message.supervise.MySuperviseMonthListFragment;
import com.hanrui.android.fragment.message.supervise.MySuperviseWeekListFragment;
import com.hanrui.android.fragment.message.threesupervise.AreaAssignFragment;
import com.hanrui.android.fragment.message.threesupervise.FirmAssignFragment;
import com.hanrui.android.fragment.message.threesupervise.ThreeSuperviseFragment;
import com.hanrui.android.fragment.message.threesupervise.ThreeSuperviseLcFragment;

import dagger.Component;

/**
 * Created by lw on 2017/1/19.
 */
@PerFragment
@Component(dependencies = ApplicationComponent.class, modules = FragmentModule.class)
public interface FragmentComponent {
    @ContextLife("Activity")
    Context getActivityContext();

    @ContextLife("Application")
    Context getApplicationContext();

    Activity getActivity();

    void inject(MobileFragment fragment);

    void inject(ApproveFragment fragment);

    void inject(ChargeFragment fragment);

    void inject(NoticeFragment fragment);

    void inject(MySuperviseWeekListFragment fragment);

    void inject(MySuperviseMonthListFragment fragment);

    void inject(FirmAssignFragment fragment);

    void inject(AreaAssignFragment fragment);

    void inject(ThreeSuperviseLcFragment fragment);

    void inject(ThreeSuperviseFragment fragment);

    void inject(LcFragemnt fragment);

    void inject(ChapterDetailFragment fragment);

    void inject(ChapterBizFragment fragment);

    void inject(GuaranteeContractDetailFragment fragment);

    void inject(GuaranteeContractBizFragment fragment);

    void inject(SealBorrowBizFragment fragment);

    void inject(SealBorrowDetailFragment fragment);

    void inject(CarDetailFragment fragment);

    void inject(CarBizFragment fragment);

    void inject(BusinessTravelDetailFragment fragment);

    void inject(BusinessTravelBizFragment fragment);

    void inject(WorkOverTimeBizFragment fragment);

    void inject(WorkOverTimeDetailFragment fragment);

    void inject(OfficeGoodDetailFragment fragment);

    void inject(OfficeGoodBizFragment fragment);

    void inject(AskForLeaveDetailFragment fragment);

    void inject(AskForLeaveBizFragment fragment);

    void inject(ProposalDetailFragment fragment);

    void inject(ProposalBizFragment fragment);

    void inject(ProposalVoteDetailFragment fragment);

    void inject(ProposalVoteBizFragment fragment);

    void inject(NotYetVoteListFragment fragment);

    void inject(AlreadyVoteListFragment fragment);

    void inject(MyVoteDetailFragment fragment);

    void inject(MyVoteHandlelFragment fragment);

    void inject(MyVoteRecordFragment fragment);

    void inject(EmpQuitDetailFragment fragment);

    void inject(EmpQuitBizFragment fragment);

    void inject(WaitMeetingListFragment fragment);

    void inject(AlreadyMeetingListFragment fragment);

    void inject(MeetingIssueDetailFragment fragment);

    void inject(MeetingIssueBizFragment fragment);

    void inject(IssueDetailFragment fragment);

    void inject(IssueBizFragment fragment);

    void inject(ReceiptDocDetailFragment fragment);

    void inject(ReceiptDocBizFragment fragment);

    void inject(ProBusInfoDetailFragment fragment);

    void inject(ProBusInfoBizFragment fragment);

    void inject(ProEleBidInfoDetailFragment fragment);

    void inject(ProEleBidInfoBizFragment fragment);

    void inject(ContractDetailFragment fragment);

    void inject(ContractBizFragment fragment);

    void inject(ProEleWeeklyMainDetailFragment fragment);

    void inject(ProEleWeeklyMainBizFragment fragment);

    void inject(OverSeeThreeDetailFragment fragment);

    void inject(OverSeeThreeBizFragment fragment);

    void inject(PerformanceBizDetailFragment fragment);

    void inject(PerformanceBizFragment fragment);

    void inject(YearPlanDetailFragment fragment);

    void inject(YearPlanBizFragment fragment);

    void inject(DispatchDocDetailFragment fragment);

    void inject(DispatchDocBizFragment fragment);

    void inject(OverSeeMonthDetailFragment fragment);

    void inject(OverSeeMonthBizFragment fragment);

    void inject(MessageFragment fragment);

    void inject(WorkFragment fragment);

    void inject(PersonalFragment fragment);

}

